#ifndef _ARGS_HPP
#define _ARGS_HPP

#include "HelperFunctions.hpp"

namespace lua
{

class Module;
class Function;

class Args
{
public:
	Args(Module *module = nullptr);
	Args(Module *module, Args &args);

	inline int getNumArgs(){ return mNumArgs; }
	const char* getString(int index);
	int getInteger(int index);
	bool getBoolean(int index);
	Function* getFunction(int index);
	Module* getModule();

	void remove(int index);

	void insert(const char *value);
	void insert(int value);
	void insert(bool value);
private:
	int mNumArgs;
	Module *mModule = nullptr;
};

}

#endif